好多VR场景下,如果存在延迟,用户在移动头部时可能会感觉到画面反应不及时,导致影响视频的流畅度。在VR电影或VR直播中,延迟则可能导致画面和声音的实时同步出现问题,使用户产生晕眩感。 今天,我们主要介绍的是VR头显下,如何低延迟的实现RTMP或RTSP的播放。技术实现说了这么多,如何在VR头显端,尽可能的降低直播播放延迟呢? RTMP或RTSP播放,是Unity下比较棘手的问题,特别是毫秒级延迟。 以Android平台为例,原生模块拿到RTSP或RTSP流后,解码获取到原始的YUV或RGB数据,然后投递给Unity,Unity下如果需要更低的延迟,数据交互这块,尽可能的高效率,尽可能的减少数据的投递和拷贝 环境下的RTMP、RTSP直播播放,如果需要延迟和稳定性都靠谱,建议数据接收、解包解码回调yuv/rgb数据在原始native模块处理,然后把解码后的数据,高效率的投递到unity测,实现unity环境下的低延迟
技术背景Unity平台下,RTSP、RTMP播放和RTMP推送,甚至包括轻量级RTSP服务这块都不再赘述,今天探讨的一位开发者提到的问题,如果在Unity下,实现RTSP播放的同时,随时转RTMP推送出去 RTSP转RTMP,在原生环境下老早已经有了,这里,其实就是把原生的挪到Unity即可,相关流程如下:图片技术实现本文以Windows平台为例,在RTSP播放模块的基础上,加个RTSP转RTMP推送模块 ].is_pulling_ = false;}拉流设置的时候,需要注意的是,如果是其他比如PCMA、PCMU的,考虑到通用性,可以转AAC后再回调数据上来,此外,拉流或播放的时候,判断是不是已经打开了RTSP audio_info.parameter_info_, audio_info.parameter_info_size_); }}总结实际上,Unity 环境下的RTSP转RTMP推送,相对RTMP、RTSP播放或推流,对接更容易,因为基本不涉及到页面交互,感兴趣的开发者可以尝试看。
技术背景VR头显需要更高的分辨率以提供更清晰的视觉体验、满足沉浸感的要求、适应透镜放大效应以及适应更广泛的可视角度,超高分辨率的优势如下:提供更清晰的视觉体验:VR头显的分辨率直接决定了用户所看到的图像的清晰度 为了保持这些区域依然清晰可辨,VR头显需要更高的分辨率来确保整个画面的清晰度和稳定性。 技术实现实际上,大牛直播SDK在2018年就发布了Unity的RTSP|RTMP的播放模块,平台陆续覆盖了Windows、Android、iOS和Linux,Unity下播放RTSP|RTMP流,原理很简单 ,底层原生模块,把RTSP|RTMP流拉过来,做解析解码回调YUV或RGB数据到上层,Unity环境下,做绘制即可。 模式设置]支持RTSP TCP/UDP模式设置; [RTSP TCP/UDP自动切换]支持RTSP TCP、UDP模式自动切换; [RTSP超时设置]支持RTSP超时时间设置,单位:秒; [RTSP 401
Unity-VR | AR相关 Unity-VR插件 一:Unity AR好用的插件 虚拟现实(VR)是未来的一大发展方向,Unity作为一款主流的游戏引擎,早已在VR的路上加码。 下面介绍一些用Unity开发VR游戏/应用的插件,可以帮助开发者更好的开发各种VR程序,构建通往未来之路。 1:VR Panorama 360 PRO Renderer VR Panorama 360 PRO Renderer可以帮助开发者在Unity内部渲染4K360°全景视频。 ? 4:VR Easy VR Easy是用Unity开发VR应用的一个多方面解决方案,开发者只需接单的拖拽就可以搭建出一个VR应用的雏形。该插件支持各大主流VR平台。 ? 下面推荐用Unity开发VR程序的一些常用插件。 1:Vuforia Core Samples Vuforia相对简单,适合初级AR入门开发者。
针对CardBoard一类的眼镜用Unity3D开发VR内容。 1、创建VRCamera: 使用Dive插件,从DiveUnityDemo提取摄像机和有关的脚本并export出来。
技术背景随着 Unity 引擎在多个垂直行业的深入应用,它早已不再只是游戏开发者的工具,更逐渐成为工业仿真、虚拟现实(VR/AR)、AI 模型训练、远程设备操控、智慧安防等领域的核心可视化平台。 因此,在 Unity 中集成 RTSP/RTMP 的播放器,已经成为多数可视化方案的基础能力要求。 那么问题来了: ✅ 在 Unity 中实现 高性能、低延迟、跨平台 的 RTSP/RTMP 播放功能,开源方案真的够用吗? 一、 Unity下播放 RTSP / RTMP 的典型技术挑战尽管 Unity 拥有强大的跨平台图形能力,但它并不原生支持任何流媒体解码与播放功能。 以下是基于 RTSP/RTMP 协议和 Unity 渲染框架的典型落地场景,以及各自的技术价值分析。
VR端我们选择了Unity3D,丰富的社区资源使得这个项目成为可能。服务模型为经典的C/S结构,VR端通过访问特定的URL向机器人发送不同的命令,再通过服务器转发到pymycobot,执行实际的动作。 这也就是遥操作系统的困局:延迟和稳定性不可兼得VR端实现VR端的实现采用了Unity3D + XR Interactive Toolkit, 选择Unity3D主要是因为其简单性,可以快速上手,且能支持多种 XR Interactive Toolkit是Unity3D的官方VR框架,使用这套系统而不是Oculus插件能够使项目方便的移植到其他VR设备上。 开发环境方面,除了使用Unity3D自带的Editor以外,C#编辑器使用Visual Studio 2022社区版。导入了UMP插件作为RTSP Player,以及Oculus官方的基本VR素材。 在控制系统方面,Unity3D和机械臂平台的对齐也是一大难点,即如何将VR世界的坐标,翻译为机械臂能听懂的坐标。
好多开发者问我们,Unity环境下,除了RTSP或RTMP的播放,如果有录像诉求,怎么实现?实际上录像相对播放来说,更简单一些,因为不涉及到绘制,只要拉流下来数据,直接写mp4文件就好了。 本文以大牛直播SDK的Windows平台为例,大概介绍下如何实现Unity环境下的录制,Linux、Android、iOS平台实现也类似,都是原生接口,然后对接下就好:图片开始录像因为涉及到可能同时录制多路的场景 NTSmartPlayerSDK.NT_SP_Close(videoctrl[sel].player_handle_); videoctrl[sel].player_handle_ = IntPtr.Zero; }}以上是Unity 平台RTMP或RTSP播放端录像相关接口设计和调用实例,感兴趣的开发者可以参考。
技术背景 随着VR技术在医疗、军事、农业、学校、景区、消防、公共安全、研学机构、展厅展馆,商场等场所普及,开发者对Unity平台下的直播体验提出了更高的要求。 技术实现 Unity平台下的RTMP推流、RTMP、RTSP播放前几年已经覆盖了Windows、Linux、Android、iOS平台。 本文主要介绍Windows平台Unity环境下的轻量级RTSP服务。通过对外提供RTSP拉流URL的形式,供内网其他终端调用。 ,一个RTSP Service下面挂载多个RTSP Stream,对外提供RTSP拉流的URL,整体设计方案如下: 图片 我们看看支持的音视频采集选项,其中视频这块,除了Unity下的Camera场景覆盖 ,还有Windows摄像头、屏幕数据,音频采集覆盖了Unity声音、扬声器、麦克风,还有混音数据。
概述与优势1.1 SDK功能特性1.1.1 支持协议与格式 支持RTMP、RTSP协议,兼容H.265、H.264视频格式及AAC、PCMA等音频格式,满足多样化播放需求。 开启RTSP TCP/UDP自动切换功能,使播放器能根据网络状况自动选择最优传输模式。 /RGB数据通过回调接口传递给Unity,避免在Unity层处理复杂的协议栈和解码逻辑。 的Texture2D,避免每帧重建(通过is_need_init_texture_标志控制) 结语通过大牛直播SDK的深度集成与参数调优,开发者能够在Unity中构建毫秒级延迟的RTSP/RTMP播放器 ,适用于VR、安防、直播等高实时性场景。
_5),将压缩包中对应的unity版本的文件夹(如5.4,5.3)中的文件解压到Unity安装目录的/Editor/Data/VR/Unity/下边; 2、打开Unity,Edit->ProjectSettings 完成这些步骤以后可以在Unity中直将工程运行在VR上。 完成上面四个步骤的准备后便可以在Unity中尽情绘制你的VR世界了。 /OVRPlugin_for_Unity_5),将压缩包中对应的unity版本的文件夹(如5.4,5.3)中的文件解压到Unity安装目录的/Editor/Data/VR/Unity/下边。 但是这种UI界面对VR基本不适用,我们的眼睛无法聚焦在如此近的物体上,而Unity VR中根本就不支持Screen Space-Overlay。
技术背景VR(虚拟现实技术)给我们带来身临其境的视觉体验,广泛的应用于城市规划、教育培训、工业仿真、房地产、水利电力、室内设计、文旅、军事等众多领域,常用的行业比如:教育行业:VR头显可以用于教育培训, 医疗行业:VR头显可以用于医疗训练和治疗,例如手术模拟、康复训练等,提高医疗效果和质量。文旅行业:VR头显可以用于旅游娱乐,提供沉浸式的旅游体验,例如虚拟旅游、文化遗产展示等。 展览展示行业:VR头显可以用于展览展示,提供沉浸式的展览体验,例如虚拟展厅、虚拟展品等,吸引观众的注意和参与。军事行业:VR头显可以用于军事训练和作战指挥,提供更加真实、逼真的军事训练环境。 技术实现如何在VR头显实现RTMP或RTSP播放? VR头显播放RTMP或RTSP流数据,简单来说,通过jni层打通RTMP或RTSP流传输,解包并解码回调给Unity YUV或RGB数据,Unity场景下,绘制即可,本文以大牛直播SDK的Unity平台
技术背景在探讨Unity平台RTMP或RTSP直播流数据播放和录制之前,我们先简单回顾下RTSP或RTMP直播流数据在Unity平台的播放流程:通过Native RTSP或RTSP直播播放SDK回调RGB /YUV420/NV12等其中的一种未压缩的图像格式;Unity下创建相应的RGB/YUV420等Shader; Unity从各个平台获取图像数据来填充纹理即可。 Unity3D环境下,我们之前已覆盖以下模块:Windows平台RTMP直播推送模块(采集Unity窗体、摄像头或屏幕); Windows平台RTMP|RTSP直播播放模块; Linux平台RTMP 直播推送模块(采集Unity窗体、Unity声音); Linux平台RTMP|RTSP直播播放模块; Android平台RTMP直播推送模块(采集Unity窗体、麦克风或Unity声音); Android 平台RTMP|RTSP直播播放模块; iOS平台RTMP|RTSP直播播放模块。
作为跨平台、模块化的音视频引擎,大牛直播SDK在过去十余年中不断演进,围绕 低延迟直播、全平台播放、实时转发、GB28181 对接、Unity3D/VR 集成 等方向沉淀了深厚的工程能力。 多协议支持:兼容 RTSP、RTMP、HTTP-FLV 等主流协议,能够适配现有 AI 平台和大模型服务。 跨平台适配:无论是 Windows/Linux 服务器,还是 Android/iOS 终端,甚至 Unity3D/VR 场景,都能无缝嵌入。 录像与快照能力:为 AI 样本采集与模型回溯提供便利。 Unity3D/VR 集成:支持第一视角的沉浸式远程操控,让操作者如同“进入机器人身体”般进行操作。 XR 与沉浸体验:通过 Unity3D/VR 集成模块,SDK 能够在头显设备中实现超低延迟视频播放,满足远程教育、虚拟会议、沉浸式娱乐等需求。
远程操作者通过 VR 头显查看实时画面,并结合 AI 分析结果下达操作指令,如拾取物体、规避障碍、调整姿态等。 多协议/多格式兼容难视频源可能来自无人机(RTSP)、边缘服务器(RTMP),若播放器不具备灵活协议支持与快速切换能力,将限制系统扩展性和部署灵活性。 等主流 VR 设备。 架构总览:从码流到画面,一站式链路优化[远端设备输出] → RTSP/RTMP/SRT → [大牛直播SDK] → [原生解码 + OES纹理] → [Unity中 Texture 显示] → Pico ,AI 检测异常后远程操控人员接管,可实现远程步态导航与任务控制 远程机械控制利用 RTMP 推流至局域网控制中心,头显人员通过手柄与姿态感应控制大型机械臂操作 AI+VR 协作决策多头显协同查看实时现场画面
好多开发者的使用场景,需要在Windows特别是Android平台实现Unity3D的全景实时视频渲染,本文以Windows平台为例,简单介绍下具体实现: 如果是RTSP或RTMP流数据,实际上难点,主要在于拉取 RTSP或RTMP流,解析解码,然后把解码后的YUV数据,回调到Unity层,Unity创建个Sphere,创建个材质球(Material),并把材质球挂在到Sphere即可。 本文以Windows推送端采集全景视频,编码推送到RTMP服务器,播放端拉流回调数据并在Unity渲染为例(左侧是Unity播放端,滑动鼠标,可以实现全景内容切换): unity全景.jpg 废话不多说 ,大概流程如下: 本文以调用我们写的RTSP、RTMP直播播放模块为例,首先是初始化模块,然后设置拉流的参数信息: public void Play(int sel) { if (videoctrl 下实现RTMP或RTSP全景视频播放的大概流程,感兴趣的开发者可自行尝试。
背景 尽管Windows平台有诸多优势,Linux平台的发展还是势不可挡,特别实在传统行业,然而Linux生态构建,总是差点意思,特别是有些常用的组件,本文基于已有的Linux平台RTSP、RTMP播放模块 ,构建Unity下的RTSP和RTMP直播播放。 技术实现 实际上,Unity层面这块没什么好介绍的,和Windows、Android、iOS平台一样,调用原生的播放模块,回调解码后的数据,在Unity绘制,主要的技术难点,还在原生的处理,也就是拉流、 先上个直观感受图,本视频以Windows平台采集秒表计时器窗体,然后编码打包传输到RTMP服务,Unity3D的Linux平台RTMP播放器拉流播放,整体延迟毫秒级。 Unity下,简单来说就是拉流解码回调,上层绘制,其实也没有那么复杂,需要注意的是DllImport的写法、之前C++结构体或枚举的转换、Unity3D对Linux的版本兼容等一些细节,对熟悉C#的开发者来说
平台侧(接收端) 大牛直播SDK播放器(跨平台播放/解码/渲染) 实时调度平台 / AI分析模块 / 地理信息系统GIS 移动端 / VR头显(Unity)同步可视化 构建目标:让“空中视觉”在端 协议多样性支持:原生支持 RTMP、RTSP、GB28181主流音视频协议,兼容公网平台、公安网指挥系统与工业私有协议平台。 VR/可视化平台集成:可嵌入 Unity3D,实现 3D GIS 可视化、VR头显远程遥控、数字孪生场景仿真等高级交互功能。 城市治理与违建巡查:空中数据协同GIS系统 ✅ 利用无人机采集城市三维图像数据 ✅ 视频与地图系统坐标联动,辅助执法标注 ✅ 违建、乱搭建、污染源可视化定位与取证 配置建议:图像处理 + YUV帧回调 + Unity )+ Unity 等集成能力 让每一台无人机每一段空中作业都可视、可控、可联动 —— 这正是大牛直播SDK正在完成的使命。
开源新VR 编辑器:EditorVR Unity 在大会上宣布将开源新的 VR 编辑器 EditorVR,允许开发者使用头显设备直接在 VR 中创建内容。 Unity宣布和OTOY合作,优化VR内容 在大会上,Unity宣布将与好莱坞“最喜欢科技”的公司OTOY合作,推出一个完全集合OTOY的Octane Render渲染器的Unity版本。 Unity 推出人才社区Unity Connect Unity 在开发者大会上宣布其专为Unity 爱好者、游戏开发人员和 VR/AR 创作者打造的免费网站社区Unity Connect已正式上线。 Parisi将加入Unity,作为AR/VR 战略负责人。 随着AR/VR技术的不断受捧,越来越多的公司都开始追加对于VR/AR的投入,而从本次Unite大会上增加的很多支持服务且不断扩展涉猎领域也足以看出Unity对于VR的重视程度,毫无疑问,Unity正在走上一条
我们在做Windows平台Unity播放RTMP或RTSP的时候,遇到这样的问题,比如展会、安防监控等场景下,需要同时播放多路RTMP或RTSP流,这样对设备性能,提出来更高的要求。 虽然我们软解码,已经做的资源占有非常低了,但考虑到多路播放的情况,我们也设计了硬解码的接口,下面大概讲下,如何在Unity下开启硬解码: 图片 检测系统是否支持硬解码 /* * 检查是否支持 extern UInt32 NT_SP_SetH265HardwareDecoder(IntPtr handle, Int32 is_hardware_decoder, Int32 reserve); Unity